---
title: "Libraries & Publishing"
description: "Install & publish ReScript packages"
canonical: "/docs/manual/libraries"
section: "JavaScript Interop"
order: 14
---

# Libraries & Publishing

ReScript libraries are just like JavaScript libraries: published & hosted on [NPM](http://npmjs.com). You can reuse your `npm`, `yarn` and `package.json`-related tools to manage them!

## Tips & Tricks

### Publish

We recommend you to check in your compiled JavaScript output, for its [various benefits](./interop-with-js-build-systems.mdx#popular-js-build-systems). If not, then at least consider publishing the JavaScript output by un-ignoring them in your [npmignore](https://docs.npmjs.com/cli/v7/using-npm/developers#keeping-files-out-of-your-package). This way, your published ReScript package comes with plain JavaScript files that JS users can consume. If your project's good, JS users might not even realize that they've installed a library written in ReScript!

In case your library is only consumed by JS users, you may want to check out our [external stdlib](./build-external-stdlib.mdx) configuration as well.

### Find Libraries

Search `rescript`-related packages on NPM, or use our [Package Index](/packages).

If you can't find what you're looking for, remember that **you don't need a wrapper** to use a JS library:

- Most JS data types, such as array and objects, [map over cleanly to ReScript and vice-versa](./shared-data-types.mdx).
- You also have access to the familiar [Core API](/docs/manual/api/stdlib).
- You can use a JavaScript library without needing to install dedicated binding libraries. Check the [`external`](./external.mdx) page.
